SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

您所在的位置:网站首页 tomcat 热部署 SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

2023-05-06 13:03| 来源: 网络整理| 查看: 265

  SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

SpringBoot(微框架)=SpringMVC(控制器)+Spring(项目管理)

特点:

(1)创建独立的Spring应用程序

(2)嵌入的Tomcat,无需部署WAR文件

(3)简化Maven配置

(4)自动配置Spring

(5)没有XML配置

一、搭建第一个SpringBoot环境 1、开发步骤(手动)

创建一个maven项目

1)引入依赖

spring-boot-starter-parent:继承springboot的父项目

org.springframework.boot spring-boot-starter-parent 2.4.4

spring-boot-starter-web:引入web支持

org.springframework.boot spring-boot-starter-web

2)引入springboot的配置文件:resources/application.properties或者resources/application.yaml

3)开发springboot入口类:com.icucoder.learn.LearnApplication.class(必须在父包中)

4)开发Controller测试:(同springmvc)

注意:如果要使用jsp文件,则需要在java和resources同级目录新建webapp目录。

2、开发步骤(自动)

使用intellijidea开发工具,新建一个Spring Initializr项目,然后开发Controller测试。

二、springboot中配置文件拆分

在实际开发过程中生成环境和测试环境有可能是不一样的,因此将生产环境中的配置和测试环境中的配置拆分是必要的。将公共配置放入主配置文件中,将不同配置放入不同环境配置文件中。在主配置文件中使用:spring.profiles.active=dev激活不同环境的配置文件。

主:application.properties

开发:application-dev.properties

生产:application-prod.properties

三、springboot中工厂特性创建对象 1、java config方式自定义java对象管理

1)创建单个自定义对象

@Component:通用组件对象的创建注解

  @Service:标识业务层组件创建

  @Controller:控制器对象创建

  @Repository:用来创建DAO组件注解

以上一般用于自定义的类的对象的创建。

2)一次性创建多个组件对象(包含复杂对象):@Configuration

@Configuration是配置注解(也是派生注解),修饰范围:用在类上,相当于曾经的spring.xml。springboot会把该类中每一个方法(方法上需要加上@Bean标签,用来创建这个对象在工厂中一个实例,默认是单例)当做一个对象的创建。

@Configuration public class BeansConfig { @Bean public Calendar getCalendar() { return Calendar.getInstance(); } }

 一般用于框架提供的类的对象的创建。

3)在使用时使用@Import导入指定对象

@RestController @RequestMapping("/learn") @Import(Company.class)//有一个实体类Company public class LearnController { @Autowired Company company; @RequestMapping("test") public String test() { System.out.println("company:" + company); return "user test1"; } } 2、xml方式配置:通过xml配置管理java对象

新建一个spring的xml,如spring.xml,使用标签,然后再启动类上加上@ImportResource("spring.xml")

四、springboot中注入方式 1、属性注入

使用@Value注解进行属性注入

1)在配置文件中定义变量:

#application.properties中定义变量 users=mayun

 2)然后再Controller中使用@Value进行注入:

@RestController @RequestMapping("/learn") public class LearnController { @Value("${names}") private String name; @RequestMapping("test") public String test() { return name; } }

   注入基本类型:String、日期类型、八种基本类型使用@Value形式注入

2、对象注入

使用@ConfigurationProperties注解进行对象注入

1)在配置文件中定义对象:

#application.properties中定义对象 user.id=7 user.name=mayun user.age=19 [email protected]

 2)编写一个基本类User,使用@ConfigurationProperties进行注入:

@Component @ConfigurationProperties(prefix = "user") public class User { private Integer id; private String name; private Integer age; private String email; //略去构造方法和setter/getter方法 }

 3)然后再Controller中使用:

@RestController @RequestMapping("/learn") public class LearnController { @Autowired private User user; @RequestMapping("test") public User test() { return user; } }

  在基本类上不使用@ConfigurationProperties,而在基本类中的每个成员变量上可以使用@Value进行注入,但是比较麻烦。

  可以使用构建源数据来在配置文件中智能提示属性:

org.springframework.boot spring-boot-configuration-processor 3、自动注入

1)@Autowired

2)@Resource

五、springboot中集成jsp页面模板

默认推荐视图模板为Thymelaf,类似于freemarker。

1、与jsp集成步骤

1)引入依赖(springboot依赖略)

javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper

2)配置jsp运行插件

org.springframework.boot spring-boot-maven-plugin

3)在application.properties中配置视图解析的前缀和后缀

spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp

4)配置启动的working directory为ModuleFileDir(此为idea缺陷,新版本好像不需要设置了)

5)在与java和resources同级目录新建webapp目录,并新建一个file.jsp文件:

6)编写Controller进行测试:http://127.0.0.1:8090/learn/test

@Controller @RequestMapping("/learn") public class LearnController { @RequestMapping("test") public String test() { return "file"; } } 2、jsp页面热部署

热部署:在不需要重启服务器情况下将jsp页面修改立即生效的过程

在springboot中默认jsp页面部署方式使用的是生产模式部署,修改之后必须重启服务器才能生效。

使用下述配置可以改为jsp热部署:

#jsp页面热部署 server.servlet.jsp.init-parameters.development=true 六、springboot中集成Thymeleaf页面模板

  Thymeleaf是一个用于web和独立环境的现代服务器端Java模板引擎。它是跟Velocity、FreeMarker类似的模板引擎,它可以完全替代JSP,相较与其他模板引擎,Thymeleaf在有网络和无网络的环境下皆可运行。即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。

1、与Thymeleaf集成步骤

1)引入依赖(springboot依赖略)

org.springframework.boot spring-boot-starter-thymeleaf

 2)在application.yaml进行属性配置

#使用模板目录 spring.thymeleaf.prefix=classpath:/templates/ #使用模板后缀 spring.thymeleaf.suffix=.html #使用模板编码 spring.thymeleaf.encoding=UTF-8 #开始thymeleaf模板 spring.thymeleaf.enabled=true #使用模板响应类型 spring.thymeleaf.servlet.content-type=text/html

 3)在与java和resources子目录新建templates目录,并新建一个index.html文件:

注意:templates目录必须经过控制器才能访问,而static则不需要

(1)html中加入thymeleaf命令空间

 

 4)编写Controller进行测试:http://127.0.0.1:8090/learn/test

@Controller @RequestMapping("/main") public class MainController { @RequestMapping("/") public String index(){ return "index"; } }  2、Thymeleaf语法入门 七、springboot集成logback日志展示 1、基本概念

logback是log4j创始人设计的又一个开源日志组件。轻量级、易用。

1)日志级别(级别越低输出日志信息越多):ALL com.icucoder.thymeleaf.ThymeleafApplication org.apache.maven.plugins maven-resources-plugin 2.4.3

 3)排除内嵌的tomcat

org.springframework.boot spring-boot-starter-tomcat provided org.apache.tomcat.embed tomcat-embed-jasper provided

 4)配置入口类

//继承SpringBootServletInitializer,然后覆盖configure方法 @SpringBootApplication public class ThymeleafApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(ThymeleafApplication.class, args); } protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(ThymeleafApplication.class); } } 2、jar  1)修改pom.xml的packaging为jar  或者默认  2)如果使用jar包部署,并且有文件上传/下载,则需要将目录映射到jar以外的目录。 配置文件application.properties中定义目录变量,然后在代码中使用@Value注解获得变量的值。 注意:              


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3